package com.sojson.project.entity.po;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.sojson.base.impl.BaseDto;
import com.sojson.enums.core.EGeneralStatus;
import com.sojson.util.DateUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty.AccessMode;

/**
 * 首页顶部菜单表Bean
 * 
 * @author liu
 * @date 2021-10-18
 */
@ApiModel("首页顶部菜单表Bean")
public class MenuUccnTop extends BaseDto {

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    private static final long serialVersionUID = 1634527998478L;

    @ApiModelProperty("菜单名称")
    private String name;
    @ApiModelProperty("父菜单ID")
    private String parentId;
    @ApiModelProperty("显示顺序")
    private Integer sortNum;
    @ApiModelProperty("请求地址")
    private String path;
    @ApiModelProperty("路由地址")
    private String component;
    @ApiModelProperty("是否为外链（1是2否）")
    private Integer isFrame;
    @ApiModelProperty("是否缓存（1缓存 2不缓存）")
    private Integer isCache;
    @ApiModelProperty("菜单类型（1目录 2菜单 3按钮）")
    private Integer type;
    @ApiModelProperty("内容类型(1:链接,2:商品列表类型ID,3:商品详情ID,4:文章ID,5:活动ID)")
    private Integer contentType;
    @ApiModelProperty("内容信息(商品列表为商品类型ID,商品详情为商品ID,文章为文章ID,活动为活动ID)")
    private String contentMsg;
    @ApiModelProperty("菜单状态（1显示 2隐藏）")
    private Integer visible;
    @ApiModelProperty("菜单状态（1正常 2停用）")
    private Integer status;
    @ApiModelProperty("权限标识")
    private String perms;
    @ApiModelProperty("菜单图标")
    private String icon;
    @ApiModelProperty("菜单环境(1:后台,2:App,3:小程序)")
    private Integer environment;
    @ApiModelProperty("创建时间")
    private Date createAt;
    @ApiModelProperty("更新时间")
    private Date updateAt;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty(value = "子菜单", accessMode = AccessMode.READ_ONLY)
    private List<MenuUccnTop> children = new ArrayList<>();
    @ApiModelProperty("菜单主键集合")
    private List<Integer> ids;
    /** 首页顶部菜单表集合 */
    private List<MenuUccnTop> menuUccnTops;

    /**
     * 以上由工具自动生成，以下为手动添加
     */

       /**
        * Empty constructor
        */
    public MenuUccnTop() {

    }

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    /**
     * 获取 菜单名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置 菜单名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取 父菜单ID
     */
    public String getParentId() {
        return parentId;
    }

    /**
     * 设置 父菜单ID
     */
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    /**
     * 获取 显示顺序
     */
    public Integer getSortNum() {
        return sortNum;
    }

    /**
     * 设置 显示顺序
     */
    public void setSortNum(Integer sortNum) {
        this.sortNum = sortNum;
    }

    /**
     * 获取 请求地址
     */
    public String getPath() {
        return path;
    }

    /**
     * 设置 请求地址
     */
    public void setPath(String path) {
        this.path = path;
    }

    /**
     * 获取 路由地址
     */
    public String getComponent() {
        return component;
    }

    /**
     * 设置 路由地址
     */
    public void setComponent(String component) {
        this.component = component;
    }

    /**
     * 获取 是否为外链（1是2否）
     */
    public Integer getIsFrame() {
        return isFrame;
    }

    /**
     * 设置 是否为外链（1是2否）
     */
    public void setIsFrame(Integer isFrame) {
        this.isFrame = isFrame;
    }

    /**
     * 获取 是否缓存（1缓存 2不缓存）
     */
    public Integer getIsCache() {
        return isCache;
    }

    /**
     * 设置 是否缓存（1缓存 2不缓存）
     */
    public void setIsCache(Integer isCache) {
        this.isCache = isCache;
    }

    /**
     * 获取 菜单类型（1目录 2菜单 3按钮）
     */
    public Integer getType() {
        return type;
    }

    /**
     * 设置 菜单类型（1目录 2菜单 3按钮）
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 获取 内容类型(1:链接,2:商品列表类型ID,3:商品详情ID,4:文章ID,5:活动ID)
     */
    public Integer getContentType() {
        return contentType;
    }

    /**
     * 设置 内容类型(1:链接,2:商品列表类型ID,3:商品详情ID,4:文章ID,5:活动ID)
     */
    public void setContentType(Integer contentType) {
        this.contentType = contentType;
    }

    /**
     * 获取 内容信息(商品列表为商品类型ID,商品详情为商品ID,文章为文章ID,活动为活动ID)
     */
    public String getContentMsg() {
        return contentMsg;
    }

    /**
     * 设置 内容信息(商品列表为商品类型ID,商品详情为商品ID,文章为文章ID,活动为活动ID)
     */
    public void setContentMsg(String contentMsg) {
        this.contentMsg = contentMsg;
    }

    /**
     * 获取 菜单状态（1显示 2隐藏）
     */
    public Integer getVisible() {
        return visible;
    }

    /**
     * 设置 菜单状态（1显示 2隐藏）
     */
    public void setVisible(Integer visible) {
        this.visible = visible;
    }

    /**
     * 获取 菜单状态（1正常 2停用）
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置 菜单状态（1正常 2停用）
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取 权限标识
     */
    public String getPerms() {
        return perms;
    }

    /**
     * 设置 权限标识
     */
    public void setPerms(String perms) {
        this.perms = perms;
    }

    /**
     * 获取 菜单图标
     */
    public String getIcon() {
        return icon;
    }

    /**
     * 设置 菜单图标
     */
    public void setIcon(String icon) {
        this.icon = icon;
    }

    /**
     * 获取 菜单环境(1:后台,2:App,3:小程序)
     */
    public Integer getEnvironment() {
        return environment;
    }

    /**
     * 设置 菜单环境(1:后台,2:App,3:小程序)
     */
    public void setEnvironment(Integer environment) {
        this.environment = environment;
    }

    /**
     * 获取 创建时间
     */
    public Date getCreateAt() {
        return createAt;
    }

    /**
     * 设置 创建时间
     */
    public void setCreateAt(Date createAt) {
        this.createAt = createAt;
    }

    /**
     * 获取 更新时间
     */
    public Date getUpdateAt() {
        return updateAt;
    }

    /**
     * 设置 更新时间
     */
    public void setUpdateAt(Date updateAt) {
        this.updateAt = updateAt;
    }

    /**
     * 获取 备注
     */
    @Override
    public String getRemark() {
        return remark;
    }

    /**
     * 设置 备注
     */
    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 获取子菜单
     */
    public List<MenuUccnTop> getChildren() {
        return children;
    }

    /**
     * 设置子菜单
     */
    public void setChildren(List<MenuUccnTop> children) {
        this.children = children;
    }

    /**
     * 获取 菜单主键集合
     */
    public List<Integer> getIds() {
        return ids;
    }

    /**
     * 设置 菜单主键集合
     */
    public void setIds(List<Integer> ids) {
        this.ids = ids;
    }

    /**
     * 获取 首页顶部菜单表集合
     */
    public List<MenuUccnTop> getMenuUccnTops() {
        return menuUccnTops;
    }

    /**
     * 设置 首页顶部菜单表集合
     */
    public void setMenuUccnTops(List<MenuUccnTop> menuUccnTops) {
        this.menuUccnTops = menuUccnTops;
    }

    /**
     * 以上由工具自动生成，以下为手动添加
     */

    /**
     * 插入初始化
     */
    public void insertInit() {
        setStatus(EGeneralStatus.NORMAL.getCode());
        Date now = DateUtil.nowDate();
        setCreateAt(now);
        setUpdateAt(now);
    }

    /**
     * 更新初始化
     */
    public void updateInit() {
        Date now = DateUtil.nowDate();
        setUpdateAt(now);
    }

}